package com.haoshuang.zhouzhoubang.ui.dialog


import android.content.Context

import android.widget.TextView
import androidx.annotation.NonNull
import com.haoshuang.zhouzhoubang.R


import com.lxj.xpopup.impl.PartShadowPopupView
import com.mufeng.libs.utils.toast
import com.mufeng.libs.utils.view.clickWithTrigger

/**自定义局部阴影弹窗
 * @param context1 上下文
 * @param onClick (TextView) -> String 点击时间选择框时
 * @param onOk (String,String) -> Unit 点击确定时，选择的时间校验完成后要执行的逻辑
 * @param
 * */
class CustomPartShadowPopupView(
    @NonNull val context1: Context,
    val onClick:(TextView) -> String,
    val onCancel:() -> Unit,
    val onOk:(String,String) -> Unit
) : PartShadowPopupView(context1) {
    val TAG = "CustomPartShadowPopupView"
    override fun getImplLayoutId(): Int {
        return R.layout.custom_part_shadow_popup // 编写你自己的布局
    }

    override fun onCreate() {
        super.onCreate()
        // 实现一些UI的初始和逻辑处理
        val startTime = findViewById<TextView>(R.id.tvStartTime)
        val endTime = findViewById<TextView>(R.id.tvEndTime)
        /*开始时间*/
        startTime.clickWithTrigger {
            onClick(it as TextView)
        }

        /*结束时间*/
        endTime.clickWithTrigger {
            onClick(it as TextView)
        }

        /*取消*/
        findViewById<TextView>(R.id.tvCancel).clickWithTrigger {
            dismissWith {
                onCancel()
//                onClick(it as TextView)
            }
        }

        /*确定*/
        findViewById<TextView>(R.id.tvSure).clickWithTrigger {
            if (startTime.text.isNullOrEmpty()){
                toast("请选择开始时间")
                return@clickWithTrigger
            }
            if (endTime.text.isNullOrEmpty()){
                toast("请选择结束时间")
                return@clickWithTrigger
            }

            val startList = startTime.text.split("-")
            val endList = endTime.text.split("-")

            /*判断时间格式，若符合条件 则关闭弹窗*/
            startList.forEachIndexed { index, s ->
                if (!endList.get(index).isNullOrEmpty()){
                    if (s.toInt() > endList.get(index).toInt()){
                        toast("结束时间不得早于开始时间")
                        return@clickWithTrigger
                    }else if (index == startList.size-1){
                        dismissWith {
                            onOk(startTime.text.toString(),endTime.text.toString())
                        }
                    }
                }
            }

        }
    }

}